import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.io.ObjectInputStream.GetField;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

import javax.swing.JFrame;


/**
 * Z poziomu tej klasy uruchamiana jest aplikacja.
 * 
 * @author Paweł Cińcio
 *
 */
public class Main extends JFrame {

	/**
	 * Metoda wywoływana na starcie przez JVM (maszyna wirtualna Javy).
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		Main myMain = new Main();
		myMain.setBounds(100, 100, 200, 400);
		myMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		myMain.setVisible(true);

		
		myMain.robCos();

		BinarySearch binarySearch = new BinarySearch();
		LinearSearch linearSearch = new LinearSearch();

		myMain.search(0, linearSearch);
		myMain.search(0, binarySearch);

		try {
			MyPrinter.print("moja wiadomość");
			MyPrinter.print("dupa");
		} catch (BadLanguageException e) {
			//e.printStackTrace();
		}

		String str = "123,4";
		Float f;
		
		try {
			f = Float.parseFloat(str);
		} catch (NumberFormatException e) {
			e.printStackTrace();
			System.out.println("nie udało się odczytać liczby!");
		}
	}

	private void search(int what, SearchInterface searchInterface) {
		searchInterface.search(what);
	}

	/**
	 * Tworzę obiekt!
	 */
	private Main() {
		super("Moje okno");
		System.out.println("Stworzyłem się!");
	}

	private void robCos() {
		System.out.println("robię!");

		Rectangle r1 = new Rectangle(1, 1, 2, 2);
		Rectangle r2 = new Rectangle(1, 1, 2, 2);

		System.out.println(this);

		if (r1.equals(r2)) {
			System.out.println("są równe");
		}
		else {
			System.out.println("nie są równe");
		}

		MyClass myClass = new MyClass(3);
		System.out.println(myClass);
	}

	@Override
	public void paint(Graphics g) {
		super.paint(g);
		g.setColor(Color.BLUE);
		g.drawRoundRect(10, 40, 100, 100, 20, 20);
	}

}
